# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.18)

# 项目名称和语言（启用 CUDA 支持）
project(nccl_main LANGUAGES C CUDA)

# 查找 CUDA 工具包
find_package(CUDA REQUIRED)

# 定义 NCCL 的路径
set(CUDA_INCLUDE_DIR /usr/local/cuda/include)     # 替换为你的 CUDA 头文件路径
set(CUDA_LIBRARY_DIR /usr/local/cuda/lib64)       # 替换为你的 CUDA 库文件路径
set(NCCL_INCLUDE_DIR /usr/include)                # 替换为你的 NCCL 头文件路径
set(NCCL_LIBRARY_DIR /usr/lib/x86_64-linux-gnu)   # 替换为你的 NCCL 库文件路径

# 添加头文件路径
include_directories(${CUDA_INCLUDE_DIR} ${NCCL_INCLUDE_DIR})

# 添加库文件路径
link_directories(${CUDA_LIBRARY_DIR} ${NCCL_LIBRARY_DIR})

# 源文件
set(SRCS communicator.cu)

# 生成可执行文件
add_executable(${PROJECT_NAME} ${SRCS})

# 链接外部库
target_link_libraries(${PROJECT_NAME} nccl cudart cuda)